Skip to content

feat(ui): real recognisable world map on the Action screen - #19

Merged
emp3thy merged 2 commits into
mainfrom
feat/real-world-map
Jul 26, 2026
Merged

feat(ui): real recognisable world map on the Action screen#19
emp3thy merged 2 commits into
mainfrom
feat/real-world-map

Conversation

@emp3thy

@emp3thy emp3thy commented Jul 26, 2026

Copy link
Copy Markdown
Owner

What

Replace the Action screen's abstract blob continents with a recognisable real-world map — actual coastlines in the game's comic ink/paper/halftone style — with leaders pinned at their true geographic locations and Freedonia as an invented mid-Atlantic island. Look confirmed in the visual companion before building.

Changes

  • src/ui/components/worldPath.ts (new) — WORLD_PATH + WORLD_VIEWBOX. Real coastlines from Natural Earth 110m land (public domain — "No permission is needed… crediting unnecessary"), converted to equirectangular screen coords (x=lon+180, y=90-lat), RDP-simplified to a single ~37KB path with fill-rule="evenodd". Provenance/licence in the file header; source SVG + regenerator kept under scripts/worldmap/.
  • src/ui/components/WorldMap.tsx — draws the real land path; viewBox → equirectangular 0 12 360 132 (crops ice caps + Antarctica); preserveAspectRatio none → xMidYMid meet (coastlines keep their proportions); an ocean rect + halftone fill the frame. COUNTRY_POS rewritten to true lon/lat via an ll(lon,lat) helper; Freedonia (player1) is a small mid-Atlantic island, human slots 2–5 sit in other oceans. Launch arcs / impact rings / pulses / diplomacy trails / build icons keep their behaviour with constants rescaled to the new map units.

Verified

  • npm run typecheck clean; npm run test:run → 448 tests green (WorldMap tests updated for the rescaled overlay dimensions).
  • Presentational only — no engine/gameplay change. Existing overlay wiring intact (a launch still renders arc + rings over the new geography; verified in the mock and tests).

Scoped visual swap of one component — no separate plan/subagent ceremony (a design note is at docs/superpowers/specs/2026-07-26-real-world-map-design.md).

🤖 Generated with Claude Code

emp3thy and others added 2 commits July 26, 2026 15:45
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace the abstract blob continents with actual coastlines (Natural Earth
110m land, public domain) in the comic ink/paper/halftone style. Leaders pin
at true lon/lat via an equirectangular mapping; Freedonia is an invented
mid-Atlantic island, other human slots take ocean spots. viewBox → equirect
(cropped past the ice caps), preserveAspectRatio meet, overlay constants
rescaled to the new map units (tests updated to match).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Claude BugBot Analysis

Reviewed the WorldMap real-world-map PR (WorldMap.tsx, worldPath.ts, convert.py, and updated tests); coordinate math, viewBox cropping, CSS variable references, and test assertions are all internally consistent with no logic errors, null derefs, or resource issues found in the added/modified lines.

No bugs were detected in this PR.

@emp3thy
emp3thy merged commit bf38ff3 into main Jul 26, 2026
1 check passed
@emp3thy
emp3thy deleted the feat/real-world-map branch July 26, 2026 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant